<!DOCTYPE html>



































































































<html>
<head>


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width" />

<link rel="shortcut icon" type="image/x-icon" href="../../../../../../favicon.ico" />
<title>AdapterViewProtocol | Android Developers</title>

<!-- STYLESHEETS -->
<link rel="stylesheet"
href="http://fonts.googleapis.com/css?family=Roboto+Condensed">
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold"
  title="roboto">
<link href="../../../../../../assets/css/default.css?v=4" rel="stylesheet" type="text/css">


<!-- FULLSCREEN STYLESHEET -->
<link href="../../../../../../assets/css/fullscreen.css" rel="stylesheet" class="fullscreen"
type="text/css">


<!-- JAVASCRIPT -->
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script src="../../../../../../assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
  var toRoot = "../../../../../../";
  var metaTags = [];
  var devsite = false;
</script>
<script src="../../../../../../assets/js/docs.js?v=3" type="text/javascript"></script>



<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-5831155-1', 'android.com');
  ga('create', 'UA-49880327-2', 'android.com', {'name': 'universal'});  // New tracker);
  ga('send', 'pageview');
  ga('universal.send', 'pageview'); // Send page view for new tracker.
</script>

</head>

<body class="gc-documentation 
  develop reference" itemscope itemtype="http://schema.org/Article">
  <div id="doc-api-level" class="" style="display:none"></div>
  <a name="top"></a>


<a name="top"></a>

<!-- dialog to prompt lang pref change when loaded from hardcoded URL 
<div id="langMessage" style="display:none">
  <div>
    <div class="lang en">
      <p>You requested a page in English, would you like to proceed with this language setting?</p>
    </div>
    <div class="lang es">
      <p>You requested a page in Spanish (Español), would you like to proceed with this language setting?</p>
    </div>
    <div class="lang ja">
      <p>You requested a page in Japanese (日本語), would you like to proceed with this language setting?</p>
    </div>
    <div class="lang ko">
      <p>You requested a page in Korean (한국어), would you like to proceed with this language setting?</p>
    </div>
    <div class="lang ru">
      <p>You requested a page in Russian (Русский), would you like to proceed with this language setting?</p>
    </div>
    <div class="lang zh-cn">
      <p>You requested a page in Simplified Chinese (简体中文), would you like to proceed with this language setting?</p>
    </div>
    <div class="lang zh-tw">
      <p>You requested a page in Traditional Chinese (繁體中文), would you like to proceed with this language setting?</p>
    </div>
    <a href="#" class="button yes" onclick="return false;">
      <span class="lang en">Yes</span>
      <span class="lang es">Sí</span>
      <span class="lang ja">Yes</span>
      <span class="lang ko">Yes</span>
      <span class="lang ru">Yes</span>
      <span class="lang zh-cn">是的</span>
      <span class="lang zh-tw">没有</span>
    </a>
    <a href="#" class="button" onclick="$('#langMessage').hide();return false;">
      <span class="lang en">No</span>
      <span class="lang es">No</span>
      <span class="lang ja">No</span>
      <span class="lang ko">No</span>
      <span class="lang ru">No</span>
      <span class="lang zh-cn">没有</span>
      <span class="lang zh-tw">没有</span>
    </a>
  </div>
</div> -->


  <!-- Header -->
  <div id="header-wrapper">
    <div id="header">

    


      <div class="wrap" id="header-wrap">
        <div class="col-3 logo">
          <a href="../../../../../../index.html">
            <img src="../../../../../../assets/images/dac_logo.png"
                srcset="../../../../../../assets/images/dac_logo@2x.png 2x"
                width="123" height="25" alt="Android Developers" />
          </a>
          <div class="btn-quicknav" id="btn-quicknav">
            <a href="#" class="arrow-inactive">Quicknav</a>
            <a href="#" class="arrow-active">Quicknav</a>
          </div>
        </div>
        <ul class="nav-x col-9">
            <li class="design">
              <a href="../../../../../../design/index.html"
              zh-tw-lang="設計"
              zh-cn-lang="设计"
              ru-lang="Проектирование"
              ko-lang="디자인"
              ja-lang="設計"
              es-lang="Diseñar"
              >Design</a></li>
            <li class="develop"><a href="../../../../../../develop/index.html"
              zh-tw-lang="開發"
              zh-cn-lang="开发"
              ru-lang="Разработка"
              ko-lang="개발"
              ja-lang="開発"
              es-lang="Desarrollar"
              >Develop</a></li>
            <li class="distribute last"><a href="../../../../../../distribute/index.html"
              zh-tw-lang="發佈"
              zh-cn-lang="分发"
              ru-lang="Распространение"
              ko-lang="배포"
              ja-lang="配布"
              es-lang="Distribuir"
              >Distribute</a></li>
        </ul>


        
        
<div class="menu-container">
  <div class="moremenu">
    <div id="more-btn"></div>
  </div>
  <div class="morehover" id="moremenu">
    <div class="top"></div>
    <div class="mid">
      <div class="header">Links</div>
      <ul>
        <li><a href="https://play.google.com/apps/publish/" target="_googleplay">Google Play Developer Console</a></li>
        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
        <li><a href="../../../../../../about/index.html">About Android</a></li>
      </ul>
      <div class="header">Android Sites</div>
      <ul>
        <li><a href="http://www.android.com">Android.com</a></li>
        <li class="active"><a>Android Developers</a></li>
        <li><a href="http://source.android.com">Android Open Source Project</a></li>
      </ul>

      
      
      
      <br class="clearfix" />
    </div><!-- end 'mid' -->
    <div class="bottom"></div>
  </div><!-- end 'moremenu' -->

  <div class="search" id="search-container">
    <div class="search-inner">
      <div id="search-btn"></div>
      <div class="left"></div>
      <form onsubmit="return submit_search()">
        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
          onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
          onkeydown="return search_changed(event, true, '../../../../../../')"
          onkeyup="return search_changed(event, false, '../../../../../../')" />
      </form>
      <div class="right"></div>
      <a class="close hide">close</a>
      <div class="left"></div>
      <div class="right"></div>
    </div><!-- end search-inner -->
  </div><!-- end search-container -->

  <div class="search_filtered_wrapper reference">
    <div class="suggest-card reference no-display">
      <ul class="search_filtered">
      </ul>
    </div>
  </div>

  <div class="search_filtered_wrapper docs">
    <div class="suggest-card dummy no-display">&nbsp;</div>
    <div class="suggest-card develop no-display">
      <ul class="search_filtered">
      </ul>
      <div class="child-card guides no-display">
      </div>
      <div class="child-card training no-display">
      </div>
      <div class="child-card samples no-display">
      </div>
    </div>
    <div class="suggest-card design no-display">
      <ul class="search_filtered">
      </ul>
    </div>
    <div class="suggest-card distribute no-display">
      <ul class="search_filtered">
      </ul>
    </div>
  </div>
</div><!-- end menu-container (search and menu widget) -->



        <!-- Expanded quicknav -->
        <div id="quicknav" class="col-13">
          <ul>
            <li class="about">
              <ul>
                <li><a href="../../../../../../about/index.html">About</a></li>
                <li><a href="../../../../../../wear/index.html">Wear</a></li>
                <li><a href="../../../../../../tv/index.html">TV</a></li>
                <li><a href="../../../../../../auto/index.html">Auto</a></li>
              </ul>
            </li>
            <li class="design">
              <ul>
                <li><a href="../../../../../../design/index.html">Get Started</a></li>
                <li><a href="../../../../../../design/devices.html">Devices</a></li>
                <li><a href="../../../../../../design/style/index.html">Style</a></li>
                <li><a href="../../../../../../design/patterns/index.html">Patterns</a></li>
                <li><a href="../../../../../../design/building-blocks/index.html">Building Blocks</a></li>
                <li><a href="../../../../../../design/downloads/index.html">Downloads</a></li>
                <li><a href="../../../../../../design/videos/index.html">Videos</a></li>
              </ul>
            </li>
            <li class="develop">
              <ul>
                <li><a href="../../../../../../training/index.html"
                  zh-tw-lang="訓練課程"
                  zh-cn-lang="培训"
                  ru-lang="Курсы"
                  ko-lang="교육"
                  ja-lang="トレーニング"
                  es-lang="Capacitación"
                  >Training</a></li>
                <li><a href="../../../../../../guide/index.html"
                  zh-tw-lang="API 指南"
                  zh-cn-lang="API 指南"
                  ru-lang="Руководства по API"
                  ko-lang="API 가이드"
                  ja-lang="API ガイド"
                  es-lang="Guías de la API"
                  >API Guides</a></li>
                <li><a href="../../../../../../reference/packages.html"
                  zh-tw-lang="參考資源"
                  zh-cn-lang="参考"
                  ru-lang="Справочник"
                  ko-lang="참조문서"
                  ja-lang="リファレンス"
                  es-lang="Referencia"
                  >Reference</a></li>
                <li><a href="../../../../../../sdk/index.html"
                  zh-tw-lang="相關工具"
                  zh-cn-lang="工具"
                  ru-lang="Инструменты"
                  ko-lang="도구"
                  ja-lang="ツール"
                  es-lang="Herramientas"
                  >Tools</a>
                </li>
                <li><a href="../../../../../../google/index.html">Google Services</a>
                </li>
                
              </ul>
            </li>
            <li class="distribute last">
              <ul>
                <li><a href="../../../../../../distribute/googleplay/index.html">Google Play</a></li>
                <li><a href="../../../../../../distribute/essentials/index.html">Essentials</a></li>
                <li><a href="../../../../../../distribute/users/index.html">Get Users</a></li>
                <li><a href="../../../../../../distribute/engage/index.html">Engage &amp; Retain</a></li>
                <li><a href="../../../../../../distribute/monetize/index.html">Monetize</a></li>
                <li><a href="../../../../../../distribute/tools/index.html">Tools &amp; Reference</a></li>
                <li><a href="../../../../../../distribute/stories/index.html">Developer Stories</a></li>
              </ul>
            </li>
          </ul>
        </div><!-- /Expanded quicknav -->
      </div><!-- end header-wrap.wrap -->
    </div><!-- end header -->

  
    <!-- Secondary x-nav -->
    <div id="nav-x">
        <div class="wrap" style="position:relative;z-index:1">

        
        
            <a id="helpoutsLink" class="resource resource-card resource-card-6x2x3 resource-card-6x2 helpouts-card" 
              href="http://helpouts.google.com/partner/landing/provider/googledevelopers?utm_source=dac&utm_medium=banner&utm_campaign=android_provider_banner3" target="_blank">
              <div class="card-bg helpouts-card-bg"></div>
              <div class="card-info">
                <div class="helpouts-description">
                  <div class="text">Help Android Wear and TV developers<br/>
                    <span id="helpoutsLinkText" class="link-color" 
                    style="display:block;padding-top:5px;text-align:right">Learn more</span>
                  </div>
                </div>
              </div>
            </a>
        
        

            <ul class="nav-x col-9 develop" style="width:100%">
                <li class="training"><a href="../../../../../../training/index.html"
                  zh-tw-lang="訓練課程"
                  zh-cn-lang="培训"
                  ru-lang="Курсы"
                  ko-lang="교육"
                  ja-lang="トレーニング"
                  es-lang="Capacitación"
                  >Training</a></li>
                <li class="guide"><a href="../../../../../../guide/index.html"
                  zh-tw-lang="API 指南"
                  zh-cn-lang="API 指南"
                  ru-lang="Руководства по API"
                  ko-lang="API 가이드"
                  ja-lang="API ガイド"
                  es-lang="Guías de la API"
                  >API Guides</a></li>
                <li class="reference"><a href="../../../../../../reference/packages.html"
                  zh-tw-lang="參考資源"
                  zh-cn-lang="参考"
                  ru-lang="Справочник"
                  ko-lang="참조문서"
                  ja-lang="リファレンス"
                  es-lang="Referencia"
                  >Reference</a></li>
                <li class="tools"><a href="../../../../../../sdk/index.html"
                  zh-tw-lang="相關工具"
                  zh-cn-lang="工具"
                  ru-lang="Инструменты"
                  ko-lang="도구"
                  ja-lang="ツール"
                  es-lang="Herramientas"
                  >Tools</a></li>
                <li class="google"><a href="../../../../../../google/index.html"
                  >Google Services</a>
                </li>
                
            </ul>
        </div>
    </div>
    <!-- /Sendondary x-nav DEVELOP -->

  

    <div id="searchResults" class="wrap" style="display:none;">
      <h2 id="searchTitle">Results</h2>
      <div id="leftSearchControl" class="search-control">Loading...</div>
    </div>
  </div> <!--end header-wrapper -->

  <div id="sticky-header">
    <div>
      <a class="logo" href="#top"></a>
      <a class="top" href="#top"></a>
      <ul class="breadcrumb">
        
        <li class="current">AdapterViewProtocol</li>
      </ul>
    </div>
  </div>





  <div class="wrap clearfix" id="body-content">
    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
      <div id="devdoc-nav">
      <div id="api-nav-header">
        <div id="api-level-toggle">
          <label for="apiLevelCheckbox" class="disabled"
            title="Select your target API level to dim unavailable APIs">API level: </label>
          <div class="select-wrapper">
            <select id="apiLevelSelector">
              <!-- option elements added by buildApiLevelSelector() -->
            </select>
          </div>
        </div><!-- end toggle -->
        <div id="api-nav-title">Android APIs</div>
        </div><!-- end nav header -->
      <script>
        var SINCE_DATA = [  ];
        buildApiLevelSelector();
      </script>
                  
      <div id="swapper">
        <div id="nav-panels">
          <div id="resize-packages-nav">
            <div id="packages-nav" class="scroll-pane">

              <ul>
                
    <li class="api apilevel-">
  <a href="../../../../../../reference/android/support/test/espresso/package-summary.html">android.support.test.espresso</a></li>
    <li class="selected api apilevel-">
  <a href="../../../../../../reference/android/support/test/espresso/action/package-summary.html">android.support.test.espresso.action</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../reference/android/support/test/espresso/assertion/package-summary.html">android.support.test.espresso.assertion</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../reference/android/support/test/espresso/base/package-summary.html">android.support.test.espresso.base</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../reference/android/support/test/espresso/matcher/package-summary.html">android.support.test.espresso.matcher</a></li>
    <li class="api apilevel-">
  <a href="../../../../../../reference/android/support/test/espresso/util/package-summary.html">android.support.test.espresso.util</a></li>
              </ul><br/>

            </div> <!-- end packages-nav -->
          </div> <!-- end resize-packages -->
          <div id="classes-nav" class="scroll-pane">



            <ul>
              
              
    <li><h2>Interfaces</h2>
      <ul>
          <li class="selected api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.html">AdapterViewProtocol</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.DataFunction.html">AdapterViewProtocol.DataFunction</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/CoordinatesProvider.html">CoordinatesProvider</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/PrecisionDescriber.html">PrecisionDescriber</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/Swiper.html">Swiper</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/Tapper.html">Tapper</a></li>
      </ul>
    </li>
              
    <li><h2>Classes</h2>
      <ul>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterDataLoaderAction.html">AdapterDataLoaderAction</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.Builder.html">AdapterViewProtocol.AdaptedData.Builder</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocols.html">AdapterViewProtocols</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/CloseKeyboardAction.html">CloseKeyboardAction</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/EditorAction.html">EditorAction</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/EspressoKey.html">EspressoKey</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/EspressoKey.Builder.html">EspressoKey.Builder</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/GeneralClickAction.html">GeneralClickAction</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/GeneralSwipeAction.html">GeneralSwipeAction</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/KeyEventAction.html">KeyEventAction</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/OpenLinkAction.html">OpenLinkAction</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/ReplaceTextAction.html">ReplaceTextAction</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/ScrollToAction.html">ScrollToAction</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/TypeTextAction.html">TypeTextAction</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/ViewActions.html">ViewActions</a></li>
      </ul>
    </li>
              
    <li><h2>Enums</h2>
      <ul>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/GeneralLocation.html">GeneralLocation</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/Press.html">Press</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/Swipe.html">Swipe</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/Swiper.Status.html">Swiper.Status</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/Tap.html">Tap</a></li>
          <li class="api apilevel-"><a href="../../../../../../reference/android/support/test/espresso/action/Tapper.Status.html">Tapper.Status</a></li>
      </ul>
    </li>
              
              
            </ul><br/>
        

          </div><!-- end classes -->
        </div><!-- end nav-panels -->
        <div id="nav-tree" style="display:none" class="scroll-pane">
          <div id="tree-list"></div>
        </div><!-- end nav-tree -->
      </div><!-- end swapper -->
      <div id="nav-swap">
      <a class="fullscreen">fullscreen</a>
      <a href='#' onclick='swapNav();return false;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>
      </div>
    </div> <!-- end devdoc-nav -->
    </div> <!-- end side-nav -->
    <script type="text/javascript">
      // init fullscreen based on user pref
      var fullscreen = readCookie("fullscreen");
      if (fullscreen != 0) {
        if (fullscreen == "false") {
          toggleFullscreen(false);
        } else {
          toggleFullscreen(true);
        }
      }
      // init nav version for mobile
      if (isMobile) {
        swapNav(); // tree view should be used on mobile
        $('#nav-swap').hide();
      } else {
        chooseDefaultNav();
        if ($("#nav-tree").is(':visible')) {
          init_default_navtree("../../../../../../");
        }
      }
      // scroll the selected page into view
      $(document).ready(function() {
        scrollIntoView("packages-nav");
        scrollIntoView("classes-nav");
        });
    </script>

     



<div class="col-12"  id="doc-col">

<div id="api-info-block">




<div class="sum-details-links">

</div><!-- end sum-details-links -->
<div class="api-level">
  
  
  

</div>
</div><!-- end api-info-block -->


<!-- ======== START OF CLASS DATA ======== -->

<div id="jd-header">
    public
     
     
    
    interface
<h1 itemprop="name">AdapterViewProtocol</h1>



  
  
  


    


</div><!-- end header -->

<div id="naMessage"></div>

<div id="jd-content" class="api apilevel-">
<table class="jd-inheritance-table">


    <tr>
         	
        <td colspan="1" class="jd-inheritance-class-cell">android.support.test.espresso.action.AdapterViewProtocol</td>
    </tr>
    

</table>







<div class="jd-descr">


<h2>Class Overview</h2>
<p itemprop="articleBody">A sadly necessary layer of indirection to interact with AdapterViews.
 <p>
 Generally any subclass should respect the contracts and behaviors of its superclass. Otherwise
 it becomes impossible to work generically with objects that all claim to share a supertype - you
 need special cases to perform the same operation 'owned' by the supertype for each sub-type. The
 'is - a' relationship is broken.
 </p>

 <p>
 Android breaks the Liskov substitution principal with ExpandableListView - you can't use
 getAdapter(), getItemAtPosition(), and other methods common to AdapterViews on an
 ExpandableListView because an ExpandableListView isn't an adapterView - they just share a lot of
 code.
 </p>

 <p>
 This interface exists to work around this wart (which sadly is copied in other projects too) and
 lets the implementor translate Espresso's needs and manipulations of the AdapterView into calls
 that make sense for the given subtype and context.
 </p>

 <p><i>
 If you have to implement this to talk to widgets your own project defines - I'm sorry.
 </i><p>

</p>





</div><!-- jd-descr -->
















<div class="jd-descr">


<h2>Summary</h2>



<!-- ======== NESTED CLASS SUMMARY ======== -->
<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>


  
    <tr class="alt-color api apilevel-" >
      <td class="jd-typecol"><nobr>
        
         
         
        
        class</nobr></td>
      <td class="jd-linkcol"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a></td>
      <td class="jd-descrcol" width="100%">
        A holder that associates a data object from an AdapterView with a token the
 AdapterViewProtocol can use to force that data object to be rendered as a child or deeper
 descendant of the adapter view.&nbsp;
        
    

      </td>
    </tr>
    
    
    <tr class=" api apilevel-" >
      <td class="jd-typecol"><nobr>
        
         
         
        
        interface</nobr></td>
      <td class="jd-linkcol"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.DataFunction.html">AdapterViewProtocol.DataFunction</a></td>
      <td class="jd-descrcol" width="100%">
        A custom function that is applied when <code><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html#getData()">getData()</a></code> is executed.&nbsp;
        
    

      </td>
    </tr>
    
    



























<!-- ========== METHOD SUMMARY =========== -->
<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>



	 
    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            Iterable&lt;<a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a>&gt;</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.html#getDataInAdapterView(android.widget.AdapterView<? extends android.widget.Adapter>)">getDataInAdapterView</a></span>(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView)</nobr>
        
        <div class="jd-descrdiv">
          Returns all data this AdapterViewProtocol can find within the given AdapterView.
          
    

        </div>
  
  </td></tr>


	 
    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            Optional&lt;<a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a>&gt;</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.html#getDataRenderedByView(android.widget.AdapterView<? extends android.widget.Adapter>, android.view.View)">getDataRenderedByView</a></span>(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView, View descendantView)</nobr>
        
        <div class="jd-descrdiv">
          Returns the data object this particular view is rendering if possible.
          
    

        </div>
  
  </td></tr>


	 
    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            boolean</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.html#isDataRenderedWithinAdapterView(android.widget.AdapterView<? extends android.widget.Adapter>, android.support.test.espresso.action.AdapterViewProtocol.AdaptedData)">isDataRenderedWithinAdapterView</a></span>(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView, <a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a> adaptedData)</nobr>
        
        <div class="jd-descrdiv">
          Indicates whether or not there now exists a descendant view within adapterView that
 is rendering this data.
          
    

        </div>
  
  </td></tr>


	 
    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.html#makeDataRenderedWithinAdapterView(android.widget.AdapterView<? extends android.widget.Adapter>, android.support.test.espresso.action.AdapterViewProtocol.AdaptedData)">makeDataRenderedWithinAdapterView</a></span>(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView, <a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a> data)</nobr>
        
        <div class="jd-descrdiv">
          Requests that a particular piece of data held in this AdapterView is actually rendered by it.
          
    

        </div>
  
  </td></tr>



</table>







</div><!-- jd-descr (summary) -->

<!-- Details -->








<!-- XML Attributes -->


<!-- Enum Values -->


<!-- Constants -->


<!-- Fields -->


<!-- Public ctors -->



<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->



<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->

<h2>Public Methods</h2>



<A NAME="getDataInAdapterView(android.widget.AdapterView<? extends android.widget.Adapter>)"></A>

<div class="jd-details api apilevel-"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
         
         
        abstract 
         
        Iterable&lt;<a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a>&gt;
      </span>
      <span class="sympad">getDataInAdapterView</span>
      <span class="normal">(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView)</span>
    </h4>
      <div class="api-level">
        <div></div>
        
  

      </div>
    <div class="jd-details-descr">
      
    

      
  <div class="jd-tagdata jd-tagdescr"><p>Returns all data this AdapterViewProtocol can find within the given AdapterView.

 <p>
 Any AdaptedData returned by this method can be passed to makeDataRenderedWithinView and the
 implementation should make the AdapterView bring that data item onto the screen.
 </p></p></div>
  <div class="jd-tagdata">
      <h5 class="jd-tagtitle">Parameters</h5>
      <table class="jd-tagtable">
        <tr>
          <th>adapterView</td>
          <td>the AdapterView we want to interrogate the contents of.</td>
        </tr>
      </table>
  </div>
  <div class="jd-tagdata">
      <h5 class="jd-tagtitle">Returns</h5>
      <ul class="nolist"><li>an <code><a href="../../../../../../reference/java/lang/Iterable.html">Iterable</a></code> of AdaptedDatas representing all data the implementation sees in
         this view</li></ul>
  </div>
  <div class="jd-tagdata">
      <h5 class="jd-tagtitle">Throws</h5>
      <table class="jd-tagtable">  
        <tr>
            <th>IllegalArgumentException</td>
            <td>if the implementation doesn't know how to manipulate the given
         adapter view.
</td>
        </tr>
      </table>
  </div>

    </div>
</div>


<A NAME="getDataRenderedByView(android.widget.AdapterView<? extends android.widget.Adapter>, android.view.View)"></A>

<div class="jd-details api apilevel-"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
         
         
        abstract 
         
        Optional&lt;<a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a>&gt;
      </span>
      <span class="sympad">getDataRenderedByView</span>
      <span class="normal">(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView, View descendantView)</span>
    </h4>
      <div class="api-level">
        <div></div>
        
  

      </div>
    <div class="jd-details-descr">
      
    

      
  <div class="jd-tagdata jd-tagdescr"><p>Returns the data object this particular view is rendering if possible.

 <p>
 Implementations are expected to create a relationship between the data in the AdapterView and
 the descendant views of the AdapterView that obeys the following conditions:
 </p>

 <ul>
 <li>For each descendant view there exists either 0 or 1 data objects it is rendering.</li>
 <li>For each data object the AdapterView there exists either 0 or 1 descendant views which
   claim to be rendering it.</li>
 </ul>

 <p> For example - if a PersonObject is rendered into: </p>
 <code>
 LinearLayout
   ImageView picture
   TextView firstName
   TextView lastName
 </code>

 <p>
 It would be expected that getDataRenderedByView(adapter, LinearLayout) would return the
 PersonObject. If it were called instead with the TextView or ImageView it would return
 Object.absent().
 </p></p></div>
  <div class="jd-tagdata">
      <h5 class="jd-tagtitle">Parameters</h5>
      <table class="jd-tagtable">
        <tr>
          <th>adapterView</td>
          <td>the adapterview hosting the data.</td>
        </tr>
        <tr>
          <th>descendantView</td>
          <td>a view which is a child, grand-child, or deeper descendant of adapterView</td>
        </tr>
      </table>
  </div>
  <div class="jd-tagdata">
      <h5 class="jd-tagtitle">Returns</h5>
      <ul class="nolist"><li>an optional data object the descendant view is rendering.</li></ul>
  </div>
  <div class="jd-tagdata">
      <h5 class="jd-tagtitle">Throws</h5>
      <table class="jd-tagtable">  
        <tr>
            <th>IllegalArgumentException</td>
            <td>if this protocol cannot interrogate this class of adapterView
</td>
        </tr>
      </table>
  </div>

    </div>
</div>


<A NAME="isDataRenderedWithinAdapterView(android.widget.AdapterView<? extends android.widget.Adapter>, android.support.test.espresso.action.AdapterViewProtocol.AdaptedData)"></A>

<div class="jd-details api apilevel-"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
         
         
        abstract 
         
        boolean
      </span>
      <span class="sympad">isDataRenderedWithinAdapterView</span>
      <span class="normal">(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView, <a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a> adaptedData)</span>
    </h4>
      <div class="api-level">
        <div></div>
        
  

      </div>
    <div class="jd-details-descr">
      
    

      
  <div class="jd-tagdata jd-tagdescr"><p>Indicates whether or not there now exists a descendant view within adapterView that
 is rendering this data.</p></div>
  <div class="jd-tagdata">
      <h5 class="jd-tagtitle">Parameters</h5>
      <table class="jd-tagtable">
        <tr>
          <th>adapterView</td>
          <td>the AdapterView hosting this data.</td>
        </tr>
        <tr>
          <th>adaptedData</td>
          <td>the data we are checking the display state for.</td>
        </tr>
      </table>
  </div>
  <div class="jd-tagdata">
      <h5 class="jd-tagtitle">Returns</h5>
      <ul class="nolist"><li>true if the data is rendered by a view in the adapterView, false otherwise.
</li></ul>
  </div>

    </div>
</div>


<A NAME="makeDataRenderedWithinAdapterView(android.widget.AdapterView<? extends android.widget.Adapter>, android.support.test.espresso.action.AdapterViewProtocol.AdaptedData)"></A>

<div class="jd-details api apilevel-"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
         
         
        abstract 
         
        void
      </span>
      <span class="sympad">makeDataRenderedWithinAdapterView</span>
      <span class="normal">(AdapterView&lt;?&nbsp;extends&nbsp;Adapter&gt; adapterView, <a href="../../../../../../reference/android/support/test/espresso/action/AdapterViewProtocol.AdaptedData.html">AdapterViewProtocol.AdaptedData</a> data)</span>
    </h4>
      <div class="api-level">
        <div></div>
        
  

      </div>
    <div class="jd-details-descr">
      
    

      
  <div class="jd-tagdata jd-tagdescr"><p>Requests that a particular piece of data held in this AdapterView is actually rendered by it.

 <p>
 After calling this method it expected that there will exist some descendant view of adapterView
 for which calling getDataRenderedByView(adapterView, descView).get() == data.data is true.
 <p>

 </p>
 Note: this need not happen immediately. EG: an implementor handling ListView may call
 listView.smoothScrollToPosition(data.opaqueToken) - which kicks off an animated scroll over
 the list to the given position. The animation may be in progress after this call returns. The
 only guarantee is that eventually - with no further interaction necessary - this data item
 will be rendered as a child or deeper descendant of this AdapterView.
 </p></p></div>
  <div class="jd-tagdata">
      <h5 class="jd-tagtitle">Parameters</h5>
      <table class="jd-tagtable">
        <tr>
          <th>adapterView</td>
          <td>the adapterView hosting the data.</td>
        </tr>
        <tr>
          <th>data</td>
          <td>an AdaptedData instance retrieved by a prior call to getDataInAdapterView</td>
        </tr>
      </table>
  </div>
  <div class="jd-tagdata">
      <h5 class="jd-tagtitle">Throws</h5>
      <table class="jd-tagtable">  
        <tr>
            <th>IllegalArgumentException</td>
            <td>if this protocol cannot manipulate adapterView or if data is
   not owned by this AdapterViewProtocol.
</td>
        </tr>
      </table>
  </div>

    </div>
</div>





<!-- ========= METHOD DETAIL ======== -->



<!-- ========= END OF CLASS DATA ========= -->
<A NAME="navbar_top"></A>

<div id="footer" class="wrap" >
        

  <div id="copyright">
    
  Except as noted, this content is licensed under <a
  href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. 
  For details and restrictions, see the <a href="../../../../../../license.html">
  Content License</a>.
  </div>
  <div id="build_info">
    
    Android &nbsp;r &mdash; 
<script src="../../../../../../timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>

  </div>


  <div id="footerlinks">
    
  <p>
    <a href="../../../../../../about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
    <a href="../../../../../../legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
    <a href="../../../../../../support.html">Support</a>
  </p>
  </div>

</div> <!-- end footer -->
</div> <!-- jd-content -->

</div><!-- end doc-content -->

</div> <!-- end body-content --> 






</body>
</html>
